#!/bin/bash

# 使用 Docker 启动 RuoYi-TDesign 应用的脚本

echo "=== 开始启动应用 ==="

# 检查 JAR 文件是否存在
if [ ! -f ./ruoyi-admin/target/ruoyi-admin.jar ]; then
    echo "错误: 未找到 ruoyi-admin.jar 文件，请先运行构建脚本"
    exit 1
fi

# 确保 Docker 服务正在运行
if ! systemctl is-active --quiet docker; then
    echo "正在启动 Docker 服务..."
    sudo systemctl start docker
fi

# 检查并创建 Docker 网络（如果需要）
echo "检查 Docker 网络..."
if ! docker network ls | grep -q "ruoyi-network"; then
    echo "创建 ruoyi-network Docker 网络..."
    docker network create ruoyi-network
fi

# 停止并移除已存在的容器
echo "停止并移除已存在的应用容器..."
docker stop ruoyi-admin 2>/dev/null || true
docker rm ruoyi-admin 2>/dev/null || true

echo "正在启动应用容器..."

# 使用 Docker 运行应用
docker run -d \
  --name ruoyi-admin \
  --network ruoyi-network \
  -p 8080:8080 \
  -v "$(pwd)/ruoyi-admin/target/ruoyi-admin.jar:/app/ruoyi-admin.jar" \
  -v "$(pwd)/logs:/app/logs" \
  -e SPRING_PROFILES_ACTIVE=prod \
  -e TZ=Asia/Shanghai \
  openjdk:21-jdk \
  java -Xms512m -Xmx1024m \
    -Dserver.port=8080 \
    -Dspring.profiles.active=prod \
    -Duser.timezone=Asia/Shanghai \
    -jar /app/ruoyi-admin.jar

echo "=== 应用已启动 ==="
echo "访问地址: http://localhost:8080"
echo "查看日志: docker logs -f ruoyi-admin"
echo "检查状态: docker ps | grep ruoyi-admin"